方差分析

全局设定

加载软件包:

读入数据

tx = read.table(file = "example.txt", row.names = 1, header = FALSE, sep = "\t")
kable(tx)
V2 V3 V4
PBS 41 47 53
IFN 59 62 75
IFN_FAKi 42 39 16
IFN_SRCi 40 36 17
# 转换一下格式
df = melt(t(tx))[,2:3]
colnames(df) = c("group", "score")
df
      group score
1       PBS    41
2       PBS    47
3       PBS    53
4       IFN    59
5       IFN    62
6       IFN    75
7  IFN_FAKi    42
8  IFN_FAKi    39
9  IFN_FAKi    16
10 IFN_SRCi    40
11 IFN_SRCi    36
12 IFN_SRCi    17

检查方差齐性

bartlett.test(score ~ group, data = df)

    Bartlett test of homogeneity of variances

data:  score by group
Bartlett's K-squared = 1.3278, df = 3, p-value = 0.7225

P-value大于0.05,说明无法拒绝无效假设(每组具有相同的方差)。

ANOVA

# 假设方差是一样的
oneway.test(score ~ group, data = df, var.equal = TRUE)

    One-way analysis of means

data:  score and group
F = 6.6645, num df = 3, denom df = 8, p-value = 0.01441

pairwise t-tests

# 不矫正多重假设检验
pairwise.t.test(df$score, df$group, pool.sd = TRUE, p.adjust.method = "none")

    Pairwise comparisons using t tests with pooled SD 

data:  df$score and df$group 

         PBS    IFN    IFN_FAKi
IFN      0.0700 -      -       
IFN_FAKi 0.1331 0.0055 -       
IFN_SRCi 0.1056 0.0045 0.8829  

P value adjustment method: none 

矫正多重假设检验

pairwise.t.test(df$score, df$group, pool.sd = TRUE, p.adjust.method = "bonferroni")

    Pairwise comparisons using t tests with pooled SD 

data:  df$score and df$group 

         PBS   IFN   IFN_FAKi
IFN      0.420 -     -       
IFN_FAKi 0.798 0.033 -       
IFN_SRCi 0.634 0.027 1.000   

P value adjustment method: bonferroni